package com.edou.member.service;

import java.util.List;

import com.edou.base.page.PageResult;
import com.edou.member.dto.MemberCompanyCondition;
import com.edou.member.entity.MemberCompany;

/**
 * 会员所属企业信息
 * @creator     
 * @create-time 2016/4/25 15:00:52
 * @email admin@edou.com
 * @company www.edou.com
 * @version 1.0
 */
public interface IMemberCompanyService {

	/**
	 * 查询所有会员所属企业信息
	 */
	List<MemberCompany> listMemberCompanyAll();

	/**
	 * 分页查询
	 * @param pageResult 分页对象
	 * @param condition 查询条件类
	 */
	void listMemberCompanyByPage(PageResult<MemberCompany> pageResult,MemberCompanyCondition condition);

	/**
	 * 根据ID查询
	 * @param id 主键
	 * @return 会员所属企业信息
	 */
	MemberCompany  getMemberCompanyById(String id);

	/**
	 * 新增
	 * @param item 会员所属企业信息
	 */
	void add(MemberCompany item);

	/**
	 * 修改
	 * @param item 会员所属企业信息
	 */
	void update(MemberCompany item);

	/**
	 * 根据ID集合批量删除
	 * @param ids ID集合
	 */
	void delByIds(String[] ids);
	
	/**
	 * 根据父级id进行查找MemberCompany
	 * @param pid
	 * @return
	 */
	List<MemberCompany> listMemberCompanyByParentId(String pid);
	
	List<MemberCompany> listRightByParentId(String pid,Integer level);
	
	/**
	 * 查询是否叶节点的数据
	 * @param isLeaf
	 * @return
	 */
	List<MemberCompany> listMemberCompanyByIsLeaf(Integer isLeaf);

	/**
	 * 根据名称进行模糊查找会员所属医院
	 * @param name
	 * @return
	 */
	List<MemberCompany> listMemberCompanyByName(String name);
	
	/**
	 * 根据角色编码查询会员企业信息
	 * @param name
	 * @return
	 */
	List<MemberCompany> listMemberCompanyByRoleCode(String code,String name);
	/**
	 * 根据企业名称查询
	 * @param name 名称
	 * @return 会员所属企业信息
	 */
	MemberCompany  getMemberCompanyByName(String name);
	
	/**
	 * 根据会员ID查询所在企业
	 * @param memberUserId 会员ID
	 * @return
	 */
	MemberCompany  getMemberCompanyByMemberUserId(String memberUserId);

	/**
	 * 查询最新几条企业
	 */
	List<MemberCompany> listMemberCompanyLimit(Integer limit);
}